(function(clazz,pid,callback,updata){
	var classdat = Get("/clazz/name/"+clazz).obj;
	
	
	
	var fields   = classdat.fields;

	var itemsfields   = _("entity.add.fun.getItems")(fields,clazz); 
	var listpanel	  =	_("entity.add.fun.getListpanel")(fields); 
	
	var items	= [];
	
	items.push({
		title:"基本信息",
        layout: {
            type: 'absolute'
        },
        xtype: "form",
        items:itemsfields
	});
	for(l in listpanel){
		items.push(listpanel[l]);
	}
	
	
	var	win	= new Ext.window.Window({
		title		:	"编辑",
		modal 		:	true,   
		constrain	:	true, 	// 防止窗口超出浏览器窗口,保证不会越过浏览器边界
		resizable	:	true, 	// 是否可以调整窗口大小，默认TRUE。
		plain		:	true,	// 将窗口变为半透明状态。 
		draggable 	:	false,	//不可以移动
		height		:	"60%",
		width		:	550,
		layout: {
	   	  	type:'hbox',
	        align:'stretch'
	    },
	    dat			:   classdat,
	    pid			:   pid,
	    items		:	{
			 xtype	:	'tabpanel', 
			 flex: 1,
			 items	:	items
		}, 
		bbar:["->",{
			text:"提交",handler:function(){
				var value = _("entity.add.fun.getValue")(this.ownerCt.ownerCt.dat);
				var msg   ;
			
				if(updata!=null){
					value.id = updata.id;
					msg	  = Put("/"+classdat.sever+"/",value);
				}else{
					msg	  = Post("/"+classdat.sever+"/",value);
				} 
				if(msg!=null){
					if(callback!=null){
						//回调
						eval(callback)(
								this.ownerCt.ownerCt.dat.name,
								this.ownerCt.ownerCt.pid);
						this.ownerCt.ownerCt.close();
					}
				}
			}
		}],
		listeners:{
			show:function(){
				if(updata!=null){
					var fields = classdat.fields;
					for(f in fields){
						if(fields[f].type=="obj"){
							//log(updata);
							Ext.getCmp(fields[f].name+"_id").setValue(updata[fields[f].name]["id"]);
							Ext.getCmp(fields[f].name).setValue(GetItem("id",updata[fields[f].name]["id"],fields[f].clazz)[fields[f].clazzQuery]);
						}else if(fields[f].type!="list"){ 
							if(fields[f].type=="date"){
								Ext.getCmp(fields[f].name).setValue(new Date(updata[fields[f].name]));
							}else{
								Ext.getCmp(fields[f].name).setValue(updata[fields[f].name]);
							}
						}
					}
				//	Ext.getCmp("id").setValue(updata["id"])
				}
			}
		}
	});
	_("tools.winshow")(win);
})